const EntryDocuments = require('../model/entryDocuments.model')

class EntryDocumentsService {
    /**
     * 新增一条参赛文件记录
     */
    async createEntry (entryData) {
        // 插入数据
        try {
            const res = await EntryDocuments.create(entryData)
            return res
        } catch (error) {
            return {
                errorFlag: 'error',
                message: error,
            }
        }
    }

    /**
     * 覆盖一条参赛文件记录
     */
    async modifyEntry (entry_path, user_account, act_id) {
        try {
            const res = await EntryDocuments.update({ entry_path }, { where: { user_account, act_id } })
            return res
        } catch (error) {
            return {
                errorFlag: 'error',
                message: error,
            }
        }
    }

    /**
     * 审批一条参赛文件记录
     */
    async approvalEntry (entry_approval_status, user_account, act_id) {
        try {
            const res = await EntryDocuments.update({ entry_approval_status }, { where: { user_account, act_id } })
            return res
        } catch (error) {
            return {
                errorFlag: 'error',
                message: error,
            }
        }
    }

    /**
     * 按照默写字段查找参赛文件表
     */
    async getEntryInfo ({ act_id, user_account, offect = 0, limit = 100 }) {
        const whereOpt = {}
        // 短路运算 值存在就拷贝进whereOpt
        act_id && Object.assign(whereOpt, { act_id })
        user_account && Object.assign(whereOpt, { user_account })
        const { count, rows } = await EntryDocuments.findAndCountAll(
            {
                where: whereOpt,
                offset: offect * 1,
                limit: limit * 1,
            },
        )
        return { count, rows }
    }
}

module.exports = new EntryDocumentsService()